#ifndef CIGUI_VIEWSCONTAINER_H
#define CIGUI_VIEWSCONTAINER_H

#include "Separator.h"
#include "ViewHeader.h"

namespace CIGui {
    /**
     * This class represents the frame that will contain the four 3D views     
     **/
    class ViewsContainer : public QFrame {

        Q_OBJECT

    public:
        ViewsContainer (std::vector<CIView::View*>& v, QWidget* parent=0);  //Constructor
        virtual ~ViewsContainer();                                          //Destructor

        //CONSTANTS DECLARATION
        static const QString STYLE_SHEET;


    public slots:
        void ToggleViewFullScreenMode (CIView::View* view);        //Method called to show (or don't show) the specified view in fullscreen mode
    
    protected:
        //A boolean to signal if there is a view shown in fullscreen mode
        bool hasViewFullScreen;

        //Layout
        QGridLayout* gridLayout;                //The container grid layout

        //Views separators
        Separator* verticalSeparator;           //The views vertical separator
        Separator* horizontalSeparator;         //The views horizontal separator

        std::vector<CIView::View*>& views;      //The 3D views

        std::vector<ViewHeader*> viewsHeaders;  //The views'headers

        //Utility methods
        void CreateActions();                   //Method called to create the actions
        void CreateContent();                   //Method called to create the container's content
        void CreateLayout();                    //Method called to create the container's layout   
 
    };
}

#endif /* CIGUI_VIEWSCONTAINER_H */
